#ifndef SYMBOL_H
#define SYMBOL_H

#include <iostream>
#include <string>
#include <list>
#include <set>
#include <vector>
#include <cassert>
#include <iostream>

using namespace std;

#define PRO_ID int

enum SymbolType {
    TERMINAL,       // 终结符
    NON_TERMINAL,   // 非终结符
    EPSILON,        // 空
};

enum class LexemeCategory : unsigned int {
    INTEGER_CONST,      // 整数常量
    FLOAT_CONST,        // 浮点常量
    SCIENTIFIC_CONST,   // 科学计数法常量
    NUMBERIC_OPERATOR,  // 数值运算符 +-*/()
    NOTE,               // 注释
    STRING_CONST,       // 字符串常量
    COMPARE_OPERATOR,   // 比较运算符
    ID,                 // 变量名
    LOGIC_OPERATOR,     // 逻辑运算词
    REGULAR,
};





#endif
